home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Mail / EnhanceMail.1.3 / Source / MailIndex.m < prev    next >
Encoding:
Text File  |  1996-03-24  |  2.5 KB  |  133 lines

  1. /* -*-C-*-
  2. *******************************************************************************
  3. *
  4. * File:         MailIndex.m
  5. * RCS:          $Header: /usr/local/lib/cvs/EnhanceMail/MailIndex.m,v 1.1.1.1 1996/03/25 01:45:54 cedman Exp $
  6. * Description:  
  7. * Author:       Carl Edman
  8. * Created:      Fri Oct 20 14:47:00 1995
  9. * Modified:     Sun Mar 24 20:41:58 1996 (Carl Edman) cedman@capitalist.princeton.edu
  10. * Language:     C
  11. * Package:      N/A
  12. * Status:       Experimental (Do Not Distribute)
  13. *
  14. * (C) Copyright 1995, but otherwise this file is perfect freeware.
  15. *
  16. *******************************************************************************
  17. */
  18.  
  19. #import "EnhanceMail.h"
  20. #import "MailIndex.h"
  21. #import <indexing/indexing.h>
  22.  
  23. static id currentbox=nil;
  24.  
  25. @implementation MailIndex
  26. + mailBox
  27.    {
  28.    return currentbox;
  29.    }
  30.  
  31. + setMailBox:nmailbox
  32.    {
  33.    currentbox=nmailbox;
  34.    return self;
  35.    }
  36.  
  37. - initMsgId:(int)nmsgId
  38.    {
  39.    msgId=nmsgId;
  40.    mes=nil;
  41.    return self;
  42.    }
  43.  
  44. - free
  45.    {
  46.    if (mes) mes=[mes free];
  47.    return [super free];
  48.    }
  49.  
  50. - read:(NXTypedStream *)stream
  51.    {
  52.    [super read:stream];
  53.    NXReadType(stream,"i",&msgId);
  54.    mes=nil;
  55.    return self;
  56.    }
  57.  
  58. - write:(NXTypedStream *)stream
  59.    {
  60.    [super write:stream];
  61.    NXWriteType(stream,"i",&msgId);
  62.    return self;
  63.    }
  64.  
  65. - setMsgId:(int)nmsgId
  66.    {
  67.    msgId=nmsgId;
  68.    if (mes) mes=[mes free];
  69.    return self;
  70.    }
  71.  
  72. - (int)msgId
  73.    {
  74.    return msgId;
  75.    }
  76.  
  77. - mailMessage
  78.    {
  79.    if (mes==nil) mes=[currentbox loadMessageAt:msgId];
  80.    return mes;
  81.    }
  82.  
  83. - (char)status
  84.    {
  85.    return [currentbox getStateForMsg:msgId];
  86.    }
  87.  
  88. - (BOOL)writeToStream:(NXStream *)stream wrapAtColumn:(int)col
  89.    {
  90.    return [[self mailMessage] writeToStream:stream wrapAtColumn:col];
  91.    }
  92.  
  93. - (const char *)messageSubject
  94.    {
  95.    return [[self mailMessage] headerValueForKey:"Subject"];
  96.    }
  97.  
  98. - (const char *)messageFrom
  99.    {
  100.    return [[self mailMessage] headerValueForKey:"From"];
  101.    }
  102.  
  103. - (const char *)messageTo
  104.    {
  105.    return [[self mailMessage] headerValueForKey:"To"];
  106.    }
  107.  
  108. - (const char *)messageCc
  109.    {
  110.    return [[self mailMessage] headerValueForKey:"Cc"];
  111.    }
  112.  
  113. - (const char *)messageDate
  114.    {
  115.    return [[self mailMessage] headerValueForKey:"Date"];
  116.    }
  117.  
  118. - (const char *)messageId
  119.    {
  120.    return [[self mailMessage] headerValueForKey:"Message-Id"];
  121.    }
  122.  
  123. - (const char *)messageNextReference
  124.    {
  125.    return [[self mailMessage] headerValueForKey:"Next-Reference"];
  126.    }
  127.  
  128. - (const char *)messageContent
  129.    {
  130.    return [[self mailMessage] body];
  131.    }
  132. @end
  133.